{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "import numpy as np\n",
    "from numpy import genfromtxt\n",
    "import matplotlib.pyplot as plt  \n",
    "from mpl_toolkits.mplot3d import Axes3D  "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[[100.    4.    9.3]\n",
      " [ 50.    3.    4.8]\n",
      " [100.    4.    8.9]\n",
      " [100.    2.    6.5]\n",
      " [ 50.    2.    4.2]\n",
      " [ 80.    2.    6.2]\n",
      " [ 75.    3.    7.4]\n",
      " [ 65.    4.    6. ]\n",
      " [ 90.    3.    7.6]\n",
      " [ 90.    2.    6.1]]\n"
     ]
    }
   ],
   "source": [
    "# 读入数据 \n",
    "data = genfromtxt(r\"Delivery.csv\",delimiter=',') # 以逗号分隔\n",
    "print(data)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[[100.   4.]\n",
      " [ 50.   3.]\n",
      " [100.   4.]\n",
      " [100.   2.]\n",
      " [ 50.   2.]\n",
      " [ 80.   2.]\n",
      " [ 75.   3.]\n",
      " [ 65.   4.]\n",
      " [ 90.   3.]\n",
      " [ 90.   2.]]\n",
      "#########\n",
      "[9.3 4.8 8.9 6.5 4.2 6.2 7.4 6.  7.6 6.1]\n"
     ]
    }
   ],
   "source": [
    "# 切分数据\n",
    "x_data = data[:,:-1] # 取所有行，取0和1列，共3列\n",
    "y_data = data[:,-1] # 取所有行，第3列\n",
    "print(x_data)\n",
    "print('#########')\n",
    "print(y_data)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [],
   "source": [
    "# 学习率learning rate\n",
    "lr = 0.0001\n",
    "# 参数\n",
    "theta0 = 0\n",
    "theta1 = 0\n",
    "theta2 = 0\n",
    "# 最大迭代次数\n",
    "epochs = 1000\n",
    "\n",
    "# 最小二乘法\n",
    "def compute_error(theta0, theta1, theta2, x_data, y_data):\n",
    "    totalError = 0\n",
    "    for i in range(0, len(x_data)):\n",
    "        # h(x) = theta0 + theta1 X1 + theta2 X2，真实值减去预测值\n",
    "        totalError += (y_data[i] - (theta1 * x_data[i,0] + theta2*x_data[i,1] + theta0)) ** 2\n",
    "    return totalError / float(len(x_data))  \n",
    "\n",
    "# 求梯度\n",
    "def gradient_descent_runner(x_data, y_data, theta0, theta1, theta2, lr, epochs):\n",
    "    # 计算总数据量\n",
    "    m = float(len(x_data))\n",
    "    # 循环epochs次\n",
    "    for i in range(epochs):\n",
    "        theta0_grad = 0\n",
    "        theta1_grad = 0\n",
    "        theta2_grad = 0\n",
    "        # 计算梯度的总和再求平均\n",
    "        for j in range(0, len(x_data)):\n",
    "            theta0_grad += (1/m) * ((theta1 * x_data[j,0] + theta2*x_data[j,1] + theta0) - y_data[j])\n",
    "            theta1_grad += (1/m) * x_data[j,0] * ((theta1 * x_data[j,0] + theta2*x_data[j,1] + theta0) - y_data[j])\n",
    "            theta2_grad += (1/m) * x_data[j,1] * ((theta1 * x_data[j,0] + theta2*x_data[j,1] + theta0) - y_data[j])\n",
    "        # 更新b和k\n",
    "        theta0 = theta0 - (lr*theta0_grad)\n",
    "        theta1 = theta1 - (lr*theta1_grad)\n",
    "        theta2 = theta2 - (lr*theta2_grad)\n",
    "    return theta0, theta1, theta2"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Starting theta0 = 0.006971416196678632, theta1 = 0.08021042690771771, theta2 = 0.07611036240566814, error = 0.7731271432218118\n",
      "Running...\n",
      "After 1000 iterations theta0 = 0.012105936219977274, theta1 = 0.07783523865497854, theta2 = 0.14266718993616928, error = 0.6838265513206063\n"
     ]
    }
   ],
   "source": [
    "print(\"Starting theta0 = {0}, theta1 = {1}, theta2 = {2}, error = {3}\".\n",
    "      format(theta0, theta1, theta2, compute_error(theta0, theta1, theta2, x_data, y_data)))\n",
    "print(\"Running...\")\n",
    "theta0, theta1, theta2 = gradient_descent_runner(x_data, y_data, theta0, theta1, theta2, lr, epochs)\n",
    "print(\"After {0} iterations theta0 = {1}, theta1 = {2}, theta2 = {3}, error = {4}\".\n",
    "      format(epochs, theta0, theta1, theta2, compute_error(theta0, theta1, theta2, x_data, y_data)))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# 画一个3D图像\n",
    "ax = plt.figure().add_subplot(111, projection = '3d') \n",
    "ax.scatter(x_data[:,0], x_data[:,1], y_data, c = 'r', marker = 'o', s = 100) #点为红色三角形  \n",
    "# 数据的切分\n",
    "x0 = x_data[:,0]\n",
    "x1 = x_data[:,1]\n",
    "# 生成网格矩阵\n",
    "x0, x1 = np.meshgrid(x0, x1)\n",
    "# 网格矩阵中每一个z点\n",
    "z = theta0 + x0*theta1 + x1*theta2\n",
    "# 画3D图\n",
    "ax.plot_surface(x0, x1, z)\n",
    "#设置坐标轴  \n",
    "ax.set_xlabel('Miles')  \n",
    "ax.set_ylabel('Num of Deliveries')  \n",
    "ax.set_zlabel('Time')  \n",
    "  \n",
    "#显示图像  \n",
    "plt.show()  "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [],
   "source": [
    "x0, x1 = np.meshgrid([1,2,3], [4,5,6])  #帮助理解网格矩阵"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[1, 2, 3],\n",
       "       [1, 2, 3],\n",
       "       [1, 2, 3]])"
      ]
     },
     "execution_count": 12,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "x0"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([[4, 4, 4],\n",
       "       [5, 5, 5],\n",
       "       [6, 6, 6]])"
      ]
     },
     "execution_count": 13,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "x1"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {},
   "outputs": [],
   "source": [
    "# (1,4) (2,4) (3,4)\n",
    "# (1,5) (2,5) (3,5)\n",
    "# (1,6) (2,6) (3,6)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.scatter(x0,x1)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.6.5"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 1
}
